package com.xgk.boot.module.infra.framework.file.core.client.oss;

import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xgk.boot.module.infra.framework.file.core.client.FileClientConfig;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.URL;

/**
 * 阿里云oss 文件客户端的配置类
 *
 * @author  xgk
 */
@Data
public class OSSFileClientConfig implements FileClientConfig {

    public static final String ENDPOINT_ALIYUN = "aliyuncs.com";


    /**
     * 节点地址
     * 2. 阿里云：https://help.aliyun.com/document_detail/31837.html
     */
    @NotNull(message = "endpoint 不能为空")
    private String endpoint;
    /**
     * 自定义域名
     * 2. 阿里云：https://help.aliyun.com/document_detail/31836.html
     */
    @URL(message = "domain 必须是 URL 格式")
    private String domain;
    /**
     * 存储 Bucket
     */
    @NotNull(message = "bucket 不能为空")
    private String bucket;

    /**
     * 访问 Key
     * 2. 阿里云：https://ram.console.aliyun.com/manage/ak
     */
    @NotNull(message = "accessKey 不能为空")
    private String accessKey;
    /**
     * 访问 Secret
     */
    @NotNull(message = "accessSecret 不能为空")
    private String accessSecret;

    /**
     * 是否启用 PathStyle 访问
     */
    @NotNull(message = "enablePathStyleAccess 不能为空")
    private Boolean enablePathStyleAccess;



}
